Form Nodes
Node
所有实际的表单 Node 都继承于 Node
。
API
属性/方法 | 类型 | 描述 |
---|---|---|
nodePath readonly | string | Node 的路径。 |
value | any | 返回或者设置节点的值。如果字段是系统保护字段,则设置该值将会引发错误。 |
getField(path) | 参数:path: string 返回:FieldNode | 在父节点中 返回 path 对应的节点引用。 |
getSubGrid(path) | 参数:path: string 返回:SunGriddNode | 在父节点中 返回 path 对应的子表引用。 |
FormNode
表单根节点引用对象。
API
属性/方法 | 类型 | 描述 |
---|---|---|
id readonly | string | 返回表单数据的 id 值。 |
name readonly | string | 返回表单的名称,也就是表单的 ApiName 。 |
title readonly | string | 返回表单的显示标签文本。 |
isSupportChangeBill readonly | boolean | 表单是否支持变更(不包含业务自定义的定制变更单) |
isChangeBill readonly | boolean | 是否是变更单 |
findUnique(path, params) | 参数:path: string params: FindParams 返回:Object | 根据 params 的参数,再结合产品对该字段内置的查询参数进行数据查询。如果查询结果只有唯一的一条记录,则返回查询结果。否则返回空。 |
findOne(path, params) | 参数:path: string params: FindParams 返回:Object | 根据 params 的参数,再结合产品对该字段内置的查询参数进行数据查询。如果查询结果中有记录,则返回查询结果的第一行数据。否则返回空。 |
findMany(path, params) | 参数:path: string params: FindParams 返回:Object[] | 根据 params 的参数,再结合产品对该字段内置的查询参数进行数据查询。 |
addDependentValidator(path,validator, dependencies) | 参数: path: string validator: (field: IFieldNodeWrapper) => string dependencies: String[] | 添加具有依赖关系的校验器, 如A字段变化要对B字段进行校验 |
setForceWriteFields(fields: Array<string> ) | 参数:fields: Array<string> 配置强制可编辑字段,如: ['detailItems.srcObject', ...] | 设置不允许通过api赋值的字段为强制可编辑,危险操作。 |
thisApp.onSave = async (ctx) => {
const form = ctx.getFormContext().form;
const { data } = ctx.getCurrentContext();
data.isManualCode = true;
const code = await form.getEntitySerialNumber('product', 'next');
data.code = code;
};
FieldNode
表单字段节点引用对象。
API
属性/方法 | 类型 | 描述 |
---|---|---|
name readonly | string | 返回字段的名称,也就是字段的 ApiName 。 |
label | string | 返回或者设置字段的显示标签文本。 |
disabled | boolean | 返回或者设置字段的可用状态。如果字段是系统保护字段并且处于不可用状态,则设置该值为 false 将会引发错误。 |
visible | boolean | 返回或者设置字段的可见状态。 |
required | boolean | 返回或者设置字段的必填状态。 |
isValid readonly | boolean | 返回字段的校验正确性。 |
setIsValid(valid, [message]) | 参数:valid: boolean message: string 返回:无 | 设置字段的校验正确性。field.setIsValid(false, 'Error!') |
findUnique(params) | 参数:params: FindParams 返回:Object | 根据 params 的参数,再结合产品对该字段内置的查询参数进行数据查询。如果查询结果只有唯一的一条记录,则返回查询结果。否则返回空。 |
findOne(params) | 参数:params: FindParams 返回:Object | 根据 params 的参数,再结合产品对该字段内置的查询参数进行数据查询。如果查询结果中有记录,则返回查询结果的第一行数据。否则返回空。 |
findMany(params) | 参数:params: FindParams 返回:Object[] | 根据 params 的参数,再结合产品对该字段内置的查询参数进行数据查询。 |
selectUnique(params) | 参数:params: FindParams 返回:Object | 该方法和 findUnique 类似,但是不同之处,如果查询结果有唯一的数据,则会同时给当前字段的 value 赋值。 |
selectOne(params) | 参数:params: FindParams 返回:Object | 该方法和 findOne 类似,但是不同之处,如果查询结果有数据,则会同时给当前字段的 value 赋值。 |
addFilter(where) | 参数:where: FindWhereParams 返回:无 | 给字段增加额外的过滤条件。增加的条件会和产品对该字段内置的查询条件以 AND 关系组合成新的查询条件。 |
removeFilter() | 去掉通过 addFilter 的过滤条件。 |
非常重要!
如果 FieldNode 是一个引用关联字段,比如客户、供应商、人员、部门等这种类型的字段。那么我们要给这种字段通过 Client API 赋值的时候,不能直接给字段的 value 设置一个 id。而必须要通过 selectUnique 或者 selectOne 来查找数据并且赋值。
SubGridNode
继承自 FieldNode
API
属性/方法 | 类型 | 描述 |
---|---|---|
rowCount readonly | number | 返回子表的行数量。 |
rows readonly | RowNode[] | 返回子表所有行节点。 |
appendRow(initialize: bool ) | 参数: initialize : bool , 可选, 返回:RowNode | 给子表添加一个空白行,并且返回新增的行引用。initalize为true的话,加行时同时初始化, web端因为默认有空白行, 追加行为是在最后一行前追加, h5直接在最后追加行 |
appendRows(rows: Array<any> ) | 参数: rows : Array<any> , 行数据集合 | 给子表添加一批行 |
insertRow(index) | 参数:index: number 返回:RowNode | 给子表在 index 位置插入一个空白行,并且返回新增的行引用。 |
insertRows(index:number , rows: Array<any> ) | 参数:index: number , rows : Array<any> 行数据集合 | 给子表在 index 位置插入一批数据行。 |
removeRowAt(index) | 参数:index: number | 删除子表中 index 位置的行。 |
removeAllRows() | 清空子表的所有行。 | |
getRowAt(index) | 参数:index: number 返回:RowNode | 返回子表中 index 位置的行。 |
setColumnVisible(fieldName:string或Array<string> , isVisible:bool ) | 参数:fieldName 字段名字段名集合, isVisible: 显示或隐藏 | 动态设置列显示/隐藏 |
isSupportChangeBill | boolean | 是否支持变更 |
RowNode
继承自 `FieldNode
API
属性/方法 | 类型 | 描述 |
---|---|---|
rowIndex readonly | number | 返回子表行位置(从 0 开始)。 |
gridName readonly | string | 返回子表名称。 |
editFlag readonly | string | 返回子表行的状态。'add' \ |
isInitialized readonly | bool | 行是否初始化。 |
initialize() | 初始化行, 添加的空行是未初始化的情况下不会触发规则计算,这时需要主动调用行初始化方法 |
caution
node节点获取value的值,取value下自定义属性时,不再支持原始的name,请使用apiName(脚本编辑界面,右侧树形列表上看到的名字)。
由于智元前期未支持apiName, 这个时候建的自定字段看到的名字是一串随机码,不方便记忆和使用, 提供了通过apiName进行开发,apiName就是建字段时文本框输入的 字段名。